/**
 * <copyright>
 * </copyright>
 *
 * $Id$
 */
package org.hl7.v3;


/**
 * <!-- begin-user-doc -->
 * A representation of the model object '<em><b>II</b></em>'.
 * <!-- end-user-doc -->
 *
 * <!-- begin-model-doc -->
 * 
 *             An identifier that uniquely identifies a thing or object.
 *             Examples are object identifier for HL7 RIM objects,
 *             medical record number, order id, service catalog item id,
 *             Vehicle Identification Number (VIN), etc. Instance
 *             identifiers are defined based on ISO object identifiers.
 *          
 * <!-- end-model-doc -->
 *
 * <p>
 * The following features are supported:
 * <ul>
 *   <li>{@link org.hl7.v3.II#getAssigningAuthorityName <em>Assigning Authority Name</em>}</li>
 *   <li>{@link org.hl7.v3.II#isDisplayable <em>Displayable</em>}</li>
 *   <li>{@link org.hl7.v3.II#getExtension <em>Extension</em>}</li>
 *   <li>{@link org.hl7.v3.II#getRoot <em>Root</em>}</li>
 * </ul>
 * </p>
 *
 * @see org.hl7.v3.V3Package#getII()
 * @model extendedMetaData="name='II' kind='empty'"
 * @generated
 */
public interface II extends ANY {
	/**
	 * Returns the value of the '<em><b>Assigning Authority Name</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * <!-- begin-model-doc -->
	 * 
	 *                      A human readable name or mnemonic for the assigning
	 *                      authority. This name may be provided solely for the
	 *                      convenience of unaided humans interpreting an  value
	 *                      and can have no computational meaning. Note: no
	 *                      automated processing must depend on the assigning
	 *                      authority name to be present in any form.
	 *                   
	 * <!-- end-model-doc -->
	 * @return the value of the '<em>Assigning Authority Name</em>' attribute.
	 * @see #setAssigningAuthorityName(String)
	 * @see org.hl7.v3.V3Package#getII_AssigningAuthorityName()
	 * @model dataType="org.hl7.v3.St"
	 *        extendedMetaData="kind='attribute' name='assigningAuthorityName'"
	 * @generated
	 */
	String getAssigningAuthorityName();

	/**
	 * Sets the value of the '{@link org.hl7.v3.II#getAssigningAuthorityName <em>Assigning Authority Name</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Assigning Authority Name</em>' attribute.
	 * @see #getAssigningAuthorityName()
	 * @generated
	 */
	void setAssigningAuthorityName(String value);

	/**
	 * Returns the value of the '<em><b>Displayable</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * <!-- begin-model-doc -->
	 * 
	 *                      Specifies if the identifier is intended for human
	 *                      display and data entry (displayable = true) as
	 *                      opposed to pure machine interoperation (displayable
	 *                      = false).
	 *                   
	 * <!-- end-model-doc -->
	 * @return the value of the '<em>Displayable</em>' attribute.
	 * @see #isSetDisplayable()
	 * @see #unsetDisplayable()
	 * @see #setDisplayable(boolean)
	 * @see org.hl7.v3.V3Package#getII_Displayable()
	 * @model unsettable="true" dataType="org.hl7.v3.Bl"
	 *        extendedMetaData="kind='attribute' name='displayable'"
	 * @generated
	 */
	boolean isDisplayable();

	/**
	 * Sets the value of the '{@link org.hl7.v3.II#isDisplayable <em>Displayable</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Displayable</em>' attribute.
	 * @see #isSetDisplayable()
	 * @see #unsetDisplayable()
	 * @see #isDisplayable()
	 * @generated
	 */
	void setDisplayable(boolean value);

	/**
	 * Unsets the value of the '{@link org.hl7.v3.II#isDisplayable <em>Displayable</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #isSetDisplayable()
	 * @see #isDisplayable()
	 * @see #setDisplayable(boolean)
	 * @generated
	 */
	void unsetDisplayable();

	/**
	 * Returns whether the value of the '{@link org.hl7.v3.II#isDisplayable <em>Displayable</em>}' attribute is set.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return whether the value of the '<em>Displayable</em>' attribute is set.
	 * @see #unsetDisplayable()
	 * @see #isDisplayable()
	 * @see #setDisplayable(boolean)
	 * @generated
	 */
	boolean isSetDisplayable();

	/**
	 * Returns the value of the '<em><b>Extension</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * <!-- begin-model-doc -->
	 * 
	 *                      A character string as a unique identifier within the
	 *                      scope of the identifier root.
	 *                   
	 * <!-- end-model-doc -->
	 * @return the value of the '<em>Extension</em>' attribute.
	 * @see #setExtension(String)
	 * @see org.hl7.v3.V3Package#getII_Extension()
	 * @model dataType="org.hl7.v3.St"
	 *        extendedMetaData="kind='attribute' name='extension'"
	 * @generated
	 */
	String getExtension();

	/**
	 * Sets the value of the '{@link org.hl7.v3.II#getExtension <em>Extension</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Extension</em>' attribute.
	 * @see #getExtension()
	 * @generated
	 */
	void setExtension(String value);

	/**
	 * Returns the value of the '<em><b>Root</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * <!-- begin-model-doc -->
	 * 
	 *                      A unique identifier that guarantees the global uniqueness
	 *                      of the instance identifier. The root alone may be the
	 *                      entire instance identifier.
	 *                   
	 * <!-- end-model-doc -->
	 * @return the value of the '<em>Root</em>' attribute.
	 * @see #setRoot(String)
	 * @see org.hl7.v3.V3Package#getII_Root()
	 * @model dataType="org.hl7.v3.Uid"
	 *        extendedMetaData="kind='attribute' name='root'"
	 * @generated
	 */
	String getRoot();

	/**
	 * Sets the value of the '{@link org.hl7.v3.II#getRoot <em>Root</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Root</em>' attribute.
	 * @see #getRoot()
	 * @generated
	 */
	void setRoot(String value);

} // II
